A state machine is a model of a behavior of an entity that includes states, transitions between states and actions. An action can be performed when entering a state, when exiting a state, in response to a present state and input condition, or upon a certain transition.
A transition indicates a state change and is described by a condition that would need to be fulfilled to enable the transition.
Complex state machines can include complex transitions. A complex transition can be conditioned by an occurrence of multiple events, by multiple repetitions of an occurrence of a certain event and, additionally or alternatively, by one or more states (or transitions) of other state machines.
Using simple event driven models in order to evaluate a behavior of an entity (that is modeled by a complex state machine) is very problematic. It will require a definition of multiple dummy states that will dramatically increase the size and complexity of the simple event driven model. In addition, simple event driven models are not capable of expressing interactions between state machines, i.e., transitions based on states or transitions of other state machines. Prior art state machine representations are not capable of capturing a complex state machine (behavior of entities interacting with each other\mutually affecting each others state).
There is a need to provide efficient methods, systems and computer program products for efficiently evaluating a behavior of an entity.